#include <allegro.h>
#include <stdlib.h>
#include <unistd.h>
#include "chargement.h"
#include "collision.h"
#include "affichage.h"


int collision_background_right(perso p,BITMAP* backgroundcol)
{
	int x;
	int y;
	x=p.ix ;
	y=p.y  ;

	if( get_pixel(backgroundcol,x+100,y+10)== 255  || get_pixel(backgroundcol,x+100,y+90)== 255)
		return (1);

	return (0);
}

int collision_background_left(perso p,BITMAP* backgroundcol)
{
	int x;
	int y;
	x=p.ix ;
	y=p.y ;

	if( get_pixel(backgroundcol,x,y+10)== 255 ||  get_pixel(backgroundcol,x,y+90)== 255)
		return (1);

	return (0);
}
int collision_background_down(perso p,BITMAP* backgroundcol)
{

	int x;
	int y;
	x=p.ix ;
	y=p.y ;

	if( get_pixel(backgroundcol,x,y+100)== 255 ||  get_pixel(backgroundcol,x+100,y+100)== 255)
		return (1);
	return (0);
}

int collision_background_up(perso p,BITMAP* backgroundcol)
{
	int x;
	int y;
	x=p.ix ;
	y=p.y ;

	if( get_pixel(backgroundcol,x,y)== 255 || get_pixel(backgroundcol,x+100,y)== 255)
		return (1);

	return (0);

}

int collision_background_ennem_right(ennem e,BITMAP* backgroundcol)
{
	int x;
	int y;
	x=e.ix  ;
	y=e.y  ;

	if( get_pixel(backgroundcol,x+100,y+10)== 255  || get_pixel(backgroundcol,x+100,y+90)== 255)
		return (1);

	return (0);
}

int collision_background_ennem_left(ennem e,BITMAP* backgroundcol)
{
	int x;
	int y;
	x=e.ix ;
	y=e.y ;

	if( get_pixel(backgroundcol,x,y+10)== 255 ||  get_pixel(backgroundcol,x,y+90)== 255)
		return (1);

	return (0);
}

int get_pixel(BITMAP* buffer,int x,int y)
{
	int tmp;
	tmp=getpixel(buffer,x,y);
	return((getr(tmp) + getb(tmp) + getg(tmp)) / 3);
}
int collision(perso p, ennem e)
{
if ((p.x < e.x - 150) || (p.y > e.y + 150) ||(p.x > e.x+150 ) || (p.y < e.y-150 ))
{
return 0;
}
return 1;
}
int collisioncart(perso p, cartouche c)
{

if ((c.x > p.x ) && (c.y > p.y ) && (c.x < p.x+100 ) && (c.y  < p.y+100 ))
{
return 1;
}
return 0;
}


int collisionbonus (perso p, bon b1) //collision entre le pirate et le bonus
{
	float x;
	float y;
	x=b1.x ;
	y=b1.y ;
if ((x > p.x-100 ) && (y+200 > p.y-200) && (x < p.x+100 ) && (y-200  < p.y+200 ))
{
return 1;
}
return 0;
}


int collision_perso_ennem_right(perso p,ennem e) // collision lorseque la personne est  près de l'ennemie à droite
{


	if(  p.x > e.x-100 && p.x -10 <e.x-100 && p.y+100>e.y  )
		return (1);

	return (0);
}

int collision_perso_ennem_left(perso p,ennem e) // collision lorseque la personne est  près de l'ennemie à gauche
{
	if(  p.x < e.x+100 && p.x +10 >e.x+100 && p.y+100>e.y )
		return (1);

	return (0);
}
int collision_perso_ennem_down(perso p,ennem e) //personne au dessous de l'ennemie
{

	if(  p.y > e.y-100  && p.x>e.x-100 &&p.x<e.x+100 )
		return (1);
	return (0);
}

int collision_perso_ennem_up(perso p,ennem e)
{
	if(  p.y < e.y && p.y +10 >e.x  ) // on peut choisir une autre valeur au lieux de 10
		return (1);

	return (0);

}


